home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / TRANSMIT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  7.3 KB  |  192 lines

  1. 1000  SCREEN 2 : CLS : KEY OFF : DIM DATAIO$(999)
  2. 1010  PRINT "***************************************************"
  3. 1020  PRINT "**  COMMUNICATIONS TRANSFER PROGRAM - TRANSMIT   **"
  4. 1030  PRINT "**  SEPT 19,1982                    VERSION 1.1  **"
  5. 1040  PRINT "***************************************************"
  6. 1050  PRINT "**  REQUIRES THE SMART MODEM SWITCHES TO BE SET  **"
  7. 1060  PRINT "**  AS :                                         **"
  8. 1070  PRINT "**  1 = UP      COMPUTER SUPPORT OF DTR LEAD     **"
  9. 1080  PRINT "**  2 = DOWN    NON-VERBOSE RESULT CODES         **"
  10. 1090  PRINT "**  3 = DOWN    RESULT CODES SENT TO SCREEN      **"
  11. 1100  PRINT "**  4 = DOWN    NO ECHO OF CHARACTERS            **"
  12. 1110  PRINT "**  5 = DOWN    NO AUTO ANSWER OF PHONE          **"
  13. 1120  PRINT "**  6 = DOWN    COMPUTER FORCED TO ACCEPT DATA   **"
  14. 1130  PRINT "**  7 = UP      SINGLE LINE PHONE                **"
  15. 1140  PRINT "***************************************************"
  16. 1150  '
  17. 1160  '*********************************************************
  18. 1170  '**  routine to enter the current correct time          **
  19. 1180  '*********************************************************
  20. 1190  LOCATE 17,1
  21. 1200  PRINT "THE CURRENT TIME IS - "; TIME$
  22. 1210  PRINT "IS THIS CORRECT  (YES = 1     NO = 0)  - ";
  23. 1220  A$ = INKEY$ : IF A$ = "" THEN 1220
  24. 1230  IF (A$ = "1") OR (A$ = CHR$(13)) THEN PRINT : GOTO 1400
  25. 1240  '
  26. 1250  ON ERROR GOTO 1330
  27. 1260  LOCATE 20,1
  28. 1270  PRINT "ENTER CORRECT TIME AS HH:MM:SS   -  ";
  29. 1280  INPUT A$
  30. 1290  IF A$ <> "" THEN TIME$ = A$
  31. 1300  GOTO 1400
  32. 1310  '
  33. 1320  '*********************************************************
  34. 1330  '**  error handling routine for time input              **
  35. 1340  '*********************************************************
  36. 1350  CLS : LOCATE 15,1
  37. 1360  PRINT "ERROR IN INPUT - PLEASE TRY AGAIN "
  38. 1370  RESUME 1270
  39. 1380  '
  40. 1390  '*********************************************************
  41. 1400  '**  transmit file name entry section                   **
  42. 1410  '*********************************************************
  43. 1420  ON ERROR GOTO 1530
  44. 1430  CLS
  45. 1440  PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION OF THE FILE TO BE "
  46. 1450  PRINT "TRANSMITTED - NOTE : FILE MUST BE IN ASCII FORMAT FOR PROGRAM "
  47. 1460  PRINT "TO WORK. "
  48. 1470  PRINT
  49. 1480  INPUT "FILENAME = " ; TRANSMIT$
  50. 1490  OPEN TRANSMIT$ FOR INPUT AS #1
  51. 1500  GOTO 1630
  52. 1510  '
  53. 1520  '*********************************************************
  54. 1530  '**  error handling routine for name entry section      **
  55. 1540  '*********************************************************
  56. 1550  FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
  57. 1560  IF ERR = 53 THEN PRINT "FILE NOT FOUND "
  58. 1570  IF ERR = 64 THEN PRINT "BAD FILE NAME "
  59. 1580  IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
  60. 1590  LOCATE 5,1
  61. 1600  RESUME 1440
  62. 1610  '
  63. 1620  '*********************************************************
  64. 1630  '**  receive file name entry section                    **
  65. 1640  '*********************************************************
  66. 1650  ON ERROR GOTO 1750
  67. 1660  CLS
  68. 1670  PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION WHERE THE FILE TO BE "
  69. 1680  PRINT "RECEIVED WILL BE STORED."
  70. 1690  PRINT
  71. 1700  INPUT "FILENAME = " ; RECIEVE$
  72. 1710  OPEN RECIEVE$ FOR OUTPUT AS #2
  73. 1720  GOTO 1850
  74. 1730  '
  75. 1740  '*********************************************************
  76. 1750  '**  error handling routine for name input section      **
  77. 1760  '*********************************************************
  78. 1770  FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
  79. 1780  IF ERR = 53 THEN PRINT "FILE NOT FOUND "
  80. 1790  IF ERR = 64 THEN PRINT "BAD FILE NAME "
  81. 1800  IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
  82. 1810  LOCATE 5,1
  83. 1820  RESUME 1670
  84. 1830  '
  85. 1840  '*********************************************************
  86. 1850  '**  routine to enter phone number for call             **
  87. 1860  '*********************************************************
  88. 1870  CLS
  89. 1880  INPUT "ENTER TELEPHONE NUMBER TO BE CALLED - ";TELE$
  90. 1890  LOCATE 4,1
  91. 1900  PRINT "THE PHONE NUMBER TO BE DIALED IS - ";TELE$
  92. 1910  PRINT "IS THIS CORRECT ? (YES = 1    NO = 0) "
  93. 1920  B$ = INKEY$ : IF B$ = "" THEN 1920
  94. 1930  IF (B$ = "1") OR (B$ = "Y") OR (B$ = "y") THEN 1970 ELSE 1940
  95. 1940  FOR X = 1 TO 1000  : NEXT  : CLS : FOR X = 1 TO 1000 : NEXT : GOTO 1850
  96. 1950  '
  97. 1960  '*********************************************************
  98. 1970  '**  routine to wait until 12:00 midnight to phone      **
  99. 1980  '*********************************************************
  100. 1990  CLS
  101. 2000  B$ = LEFT$(TIME$,2)
  102. 2010  LOCATE 1,1
  103. 2020  PRINT TIME$,DATE$
  104. 2030  IF B$ = "24" THEN 2040 ELSE 2000
  105. 2040  PRINT "INITIATING CALL - MIDNIGHT"
  106. 2050  '
  107. 2060  '*********************************************************
  108. 2070  '**  routine to initiate communications                 **
  109. 2080  '*********************************************************
  110. 2090  ON ERROR GOTO 0
  111. 2100  OPEN "com1:" AS #3
  112. 2110  IF (INP(&H3FD) AND &H20) = 0 THEN 2110 'TRANS HOLD REGISTER EMPTY?
  113. 2120  PRINT #3, "AT Z"
  114. 2130  GOSUB 2200
  115. 2140  SEC = 3 : GOSUB 2290
  116. 2150  PRINT #3, "AT DP " + TELE$
  117. 2160  GOSUB 2200
  118. 2170  END          ' IF HERE THEN ERROR - CLOSE AND STOP
  119. 2180  '
  120. 2190  '*********************************************************
  121. 2200  '**  routine to input a line from modem                 **
  122. 2210  '*********************************************************
  123. 2220  LINE INPUT #3, RECEIVEDATA$
  124. 2230  PRINT
  125. 2240  IF RECEIVEDATA$ = "0" THEN PRINT "RESPONSE = OK" : RETURN
  126. 2250  IF RECEIVEDATA$ = "1" THEN PRINT "RESPONSE = CONNECT" : RETURN 2370
  127. 2260  IF RECEIVEDATA$ = "2" THEN PRINT "RESPONSE = RING" : END
  128. 2270  IF RECEIVEDATA$ = "3" THEN PRINT "RESPONSE = NO CARRIER" : END
  129. 2280  IF RECEIVEDATA$ = "4" THEN PRINT "RESPONSE = ERROR" : END
  130. 2290  '
  131. 2300  '*********************************************************
  132. 2310  '**  time delay for SEC seconds                         **
  133. 2320  '*********************************************************
  134. 2330  FOR DELAY = 1 TO 700*SEC : NEXT DELAY
  135. 2340  RETURN
  136. 2350  '
  137. 2360  '*********************************************************
  138. 2370  '**  routine to transmit data to distant end            **
  139. 2380  '*********************************************************
  140. 2390  ON COM(1) GOSUB 2660
  141. 2400  COM(1) ON
  142. 2410  ON ERROR GOTO 2880     ' TERMINATE
  143. 2420  SEC = 3 : GOSUB 2310
  144. 2430  WHILE NOT EOF(1)
  145. 2440  LINE INPUT #1 , SENDDATA$
  146. 2450  PRINT #3, SENDDATA$
  147. 2460  WEND
  148. 2470  PRINT #3, "65000 '"
  149. 2480  PRINT : PRINT "FILE - ";TRANSMIT$;" TRANSMITTED OK"
  150. 2490  '
  151. 2500  '*********************************************************
  152. 2510  '**  routine to receive data and store it               **
  153. 2520  '*********************************************************
  154. 2530  ON COM(1) GOSUB 2780
  155. 2540  IF VAL(RECEIVEDATA$) < 64000 THEN 2540
  156. 2550  COM(1) OFF
  157. 2560  '
  158. 2570  FOR I = 1 TO POINTER
  159. 2580  PRINT #2 , DATAIO$(I)
  160. 2590  NEXT I
  161. 2600  '
  162. 2610  CLOSE
  163. 2620  PRINT : PRINT "FILE - ";RECEIVE$;" RECEIVED AND STORED"
  164. 2630  GOTO 2880
  165. 2640  '
  166. 2650  '*********************************************************
  167. 2660  '**  routine to tell if data sent from distant end      **
  168. 2670  '*********************************************************
  169. 2680  LINE INPUT #3 , RECEIVEDATA$
  170. 2690  PRINT "DATA RECEIVED DURING FILE TRANSMISSION " ; RECEIVEDATA$
  171. 2700  IF RECEIVEDATA$ = "0" THEN PRINT "RESPONSE = OK"
  172. 2710  IF RECEIVEDATA$ = "1" THEN PRINT "RESPONSE = CONNECT"
  173. 2720  IF RECEIVEDATA$ = "2" THEN PRINT "RESPONSE = RING"
  174. 2730  IF RECEIVEDATA$ = "3" THEN PRINT "RESPONSE = NO CARRIER"
  175. 2740  IF RECEIVEDATA$ = "4" THEN PRINT "RESPONSE = ERROR"
  176. 2750  RETURN 2880 'TREAT ANY TRANSMISSION AS AN ERROR AND TERMINATE
  177. 2760  '
  178. 2770  '*********************************************************
  179. 2780  '**  store each line in array DATAIO$ via interrupt     **
  180. 2790  '*********************************************************
  181. 2800  LINE INPUT #3, RECEIVEDATA$
  182. 2810  POINTER = POINTER + 1
  183. 2820  DATAIO$(POINTER) = RECEIVEDATA$
  184. 2830  IF (RECEIVEDATA$ = "3") THEN PRINT : PRINT "LOSS OF CARRIER" : END
  185. 2840  IF VAL(RECEIVEDATA$) > 64000 THEN COM(1) OFF
  186. 2850  RETURN
  187. 2860  '
  188. 2870  '*********************************************************
  189. 2880  '**                 TERMINATE PROGRAM                   **
  190. 2890  '*********************************************************
  191. 2900  END
  192.